package com.cskaoyan.javase.basic._0datatype;

/**
 * 数据类型的定义:
 * 从数据的使用角度上来说,
 * 数据类型， 表示的是一组数据的集合，和基于该数据集合的一组合法操作。
 *
 * 数据类型 = 数据 + 操作(二者缺一不可)
 * 比如int类型,它的数据的取值是一个固定的范围,同时int类型可以做"加减乘除"的操作
 *      但是int类型不能做"求长度,求重量"等操作
 *
 * 比如String类型,它在Java中表示字符串,所以它的取值可以是全体字符串
 *      同时String类型的操作也是被限制的
 *      它可以做"+",表示字符串的拼接,但是没有"- / *"
 *      字符串有长度的概念,所以String类型可以做"求长度"的运算
 *
 * 基本数据类型,有"四类八种"
 * 整型: byte,short,int,long 它们都表示整数,区别是占用内存空间的大小不同,表示的取值范围
 * 浮点型:
 *      float,double 它们都用来表示浮点数,区别是占用内存空间的大小不同,表示的取值范围
 *      浮点型确实存在小数点的概念,但不能等同于小数,浮点数表示整数也完全可以
 *
 * 字符型: char类型,占用2个字节的内存空间,16位
 *      在计算机中存储字符,实际上是存储字符的映射值,这个映射值,一般称之为"字符的编码值"
 *      当使用一张表格罗列出,规定出,所有字符串的编码值时,这就是"编码表"
 *      比如"ASCII"码表
 *      编码值是一个正整数,从0开始
 *      所以字符型实际上是一个16位的无符号正整数类型
 *      char类型的取值范围是[0,2^16-1] [0,65535]
 *      通过存储以上正整数(编码值),存储字符
 *      常见的字符的编码值: a --> 97 b --> 98 A-->65
 * 布尔型: boolean,只有true或者false两个固定取值,表示真和假,一般都是配合if使用,for循环等
 *
 * 基本数据类型除了以上分类(分成四类)外,还可以笼统的分为两类:
 *      1.数值类型: 整型,浮点型,字符型
 *      2.非数值类型: 布尔型
 *
 * @since 15:40
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        double d1 = 999999999;
        char c = 'a';
        System.out.println(c);
        // 字符类型实际上也是整数类型,在参与数值运算时,是字符的编码值参与运算
        System.out.println(c * 10);

        float f1 = 1.23456789F;
        System.out.println(f1);

        double d2 = 1.23456789;
        System.out.println(d2);
    }
}
